In a distributed computing environment, certain applications such Unix applications have primarily been distributed as source code. To install a new application, a user has to download the source code for that application from a distributed server. Typically, the source code is provided in some sort of archive (such as the Zip archival and compression format often used in the Windows® world or the tar archive format typically used in the Unix® world) that the user must then unpack. After unpacking this source code, the user has to configure it to support the options and systems he/she wants, compiling it to produce an executable program that can run on a particular operating system.
Generally, files are packaged into one or more packages for distribution. A package manager running in a computer is designed to download, unpack, and install the packages. The package manager is also configured to update any software packages installed in the local machine by downloading new versions of the packages. Typically, when updating a software package, a package manager may download metadata of the package from a distributed server and compare the newly downloaded metadata with the metadata of the software package currently installed. Based on the comparison of the metadata, if the package manager determines that a new version of the package is available, the package manager then downloads, unpacks, and installs the new package. The metadata is usually in a script format such as extensible markup language (XML) data (or in sqlite databases). As more new packages are made available in the distribution repository, the metadata stored therein keeps growing. Thus, downloading such metadata for updating purposes requires longer and longer time and consumes more and more resources.